/**
* AutoSWF - Cody Cushing. March 26, 2009
* Copyright (c) 2009 Cody Cushing
* No use restrictions. Maintain this notice in all versions. 
**/

package com.autoswf.core
{
	import flash.utils.Dictionary;
	
	/**
	 * Interface for implementing a link.
	 */	
	public interface ILink
	{
		/** Links require a string id for directing messages to a specific location. */
		function get id():String
		
		/** To connect the link implementation to a parent link. */
		function addParentLink(link:ILink):void
		
		/** To remove a parent link from this links dictionary. */
		function removeParentLink(link:ILink):void
		
		/** To connect the link implementation to a child link. */
		function addChildLink(link:ILink):void
		
		/** To remove a child link from this links dictionary. */
		function removeChildLink(link:ILink):void
		
		/** To send an object to any parent(s).  */
		function sendUp(object:*):void
		
		/** To send an object to any children */
		function sendDown(object:*):Object
	}
}